const path = require('path')
const resolve = require('rollup-plugin-node-resolve') // 将项目引用的模块进行混合打包
const commonJs = require('rollup-plugin-commonjs') // 解决打包过程中 commonJs 模块无法被识别的问题
const babel = require('rollup-plugin-babel') // 代码进行ES6转ES5兼容旧版本浏览器
const json = require('@rollup/plugin-json') // 支持json
const vue = require('rollup-plugin-vue') // 支持Vue
const postcss = require('rollup-plugin-postcss') // scss支持
import { terser } from "rollup-plugin-terser"; // 生产模式对代码进行压缩
const inputPath = path.resolve(__dirname, './src/index.js')
const outputUmdPath = path.resolve(__dirname, './dist/dist.usd.min.js')
const outputEsPath = path.resolve(__dirname, './dist/dist.es.min.js')

module.exports = {
    input: inputPath,
    output: [
        {
            file: outputUmdPath,
            format: 'umd', // umd 代表通用模块定义（Universal Module Definition） cjs(commonJs) es(ES6标准)
            name: 'datav',
            globals: {
                vue: 'vue'
            }
        },
        {
            file: outputEsPath,
            format: 'es', // umd 代表通用模块定义（Universal Module Definition） cjs(commonJs) es(ES6标准)
            globals: {
                vue: 'vue'
            }
        }
    ],
    plugins: [
        resolve(),
        vue(),
        commonJs(),
        babel({
            exclude: 'node_modules/**'
        }),
        json(),
        postcss({
            plugins: []
        }),
        terser(),
    ],
    // 作为外部模块进行引用
    external: [
        'vue'
    ]
}
